/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package cliente;

import java.util.HashMap;
import padroes.Registro;
import constantes.*;
import java.util.Vector;

/**
 *
 * @author atavares
 */
public class Cliente extends Registro{


    public Cliente()
    {
        super("cliente");
        adicionarChavePrimaria(ClienteConst.ID);
    }
    public Cliente(int idCliente, String nomeCliente, String enderecoCliente, int numeroCliente,
                   String complementoCliente, String bairroCliente, String cidadeCliente,
                   String estadoCliente, String paisCliente, String skypeCliente, String obsCliente,
                   String telefoneCliente, String loginCliente, String senhaCliente)
    {
        this();
        this.set(ClienteConst.ID, idCliente);
        this.set(ClienteConst.NOME, nomeCliente);
        this.set(ClienteConst.ENDERECO, enderecoCliente);
        this.set(ClienteConst.NUMERO, numeroCliente);
        this.set(ClienteConst.COMPLEMENTO, complementoCliente);
        this.set(ClienteConst.BAIRRO, bairroCliente);
        this.set(ClienteConst.CIDADE, cidadeCliente);
        this.set(ClienteConst.ESTADO, estadoCliente);
        this.set(ClienteConst.COUNTRY, paisCliente);
        this.set(ClienteConst.SKYPE, skypeCliente);
        this.set(ClienteConst.OBS, obsCliente);
        this.set(ClienteConst.TELEFONE, telefoneCliente);
        this.set(ClienteConst.LOGIN, loginCliente);
        this.set(ClienteConst.SENHA, senhaCliente);
    }

    public Cliente(HashMap<String,Object> campos)
    {
        this();
        this.setCampos(campos);
    }

    public Boolean match(Cliente criterio, Boolean operador)
    {
        Boolean opAnd = true, opOr = false;
        return (!operador && opAnd) || (!operador && opOr);
    }

    /**
     * @return the id
     */
    public int getId() {
        Integer valor = (Integer)get(ClienteConst.ID);
        return valor.intValue();
    }

    /**
     * @return the nome
     */
    public String getNome() {
        String valor = (String)get(ClienteConst.NOME);
        return valor;
    }

    /**
     * @return the endereco
     */
    public String getEndereco() {
        String valor = (String)get(ClienteConst.ENDERECO);
        return valor;
    }

    /**
     * @return the endereco
     */
    public int getNumero() {
        Integer valor = (Integer)get(ClienteConst.NUMERO);
        return valor.intValue();
    }

    /**
     * @return the endereco
     */
    public String getComplemento() {
        String valor = (String)get(ClienteConst.COMPLEMENTO);
        return valor;
    }

    /**
     * @return the endereco
     */
    public String getBairro() {
        String valor = (String)get(ClienteConst.BAIRRO);
        return valor;
    }

    /**
     * @return the endereco
     */
    public String getCidade() {
        String valor = (String)get(ClienteConst.CIDADE);
        return valor;
    }

    /**
     * @return the endereco
     */
    public String getEstado() {
        String valor = (String)get(ClienteConst.ESTADO);
        return valor;
    }

    /**
     * @return the endereco
     */
    public String getPais() {
        String valor = (String)get(ClienteConst.COUNTRY);
        return valor;
    }

    /**
     * @return the endereco
     */
    public String getObs() {
        String valor = (String)get(ClienteConst.OBS);
        return valor;
    }


    /**
     * @return the telefone
     */
    public String getTelefone() {
        String valor = (String)get(ClienteConst.TELEFONE);
        return valor;
    }


    /**
     * @return the login
     */
    public String getLogin() {
        String valor = (String)get(ClienteConst.LOGIN);
        return valor;
    }

    /**
     * @return the senha
     */
    public String getSenha() {
        String valor = (String)get(ClienteConst.SENHA);
        return valor;
    }

    /**
     * @return the skype
     */
    public String getSkype() {
        String valor = (String)get(ClienteConst.SKYPE);
        return valor;
    }

    /**
     * @param id the id to set
     */
    public void setId(int id) {

        set(ClienteConst.ID, id);
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nomeCliente) {
        set(ClienteConst.NOME, nomeCliente);
    }

    /**
     * @param endereco the endereco to set
     */
    public void setEndereco(String enderecoCliente) {
        set(ClienteConst.ENDERECO, enderecoCliente);
    }

    /**
     * @param endereco the endereco to set
     */
    public void setNumero(int numeroCliente) {
        set(ClienteConst.NUMERO, numeroCliente);
    }

    /**
     * @param endereco the endereco to set
     */
    public void setComplemento(String complementoCliente) {
        set(ClienteConst.COMPLEMENTO, complementoCliente);
    }

    /**
     * @param endereco the endereco to set
     */
    public void setBairro(String bairroCliente) {
        set(ClienteConst.BAIRRO, bairroCliente);
    }

    /**
     * @param endereco the endereco to set
     */
    public void setCidade(String cidadeCliente) {
        set(ClienteConst.CIDADE, cidadeCliente);
    }

    /**
     * @param endereco the endereco to set
     */
    public void setEstado(String estadoCliente) {
        set(ClienteConst.ESTADO, estadoCliente);
    }

    /**
     * @param endereco the endereco to set
     */
    public void setPais(String paisCliente) {
        set(ClienteConst.COUNTRY, paisCliente);
    }

    /**
     * @param telefone the telefone to set
     */
    public void setTelefone(String telefoneCliente) {
        set(ClienteConst.TELEFONE, telefoneCliente);
    }



    /**
     * @param login the login to set
     */
    public void setLogin(String loginCliente) {
        set(ClienteConst.LOGIN, loginCliente);
    }

    /**
     * @param senha the senha to set
     */
    public void setSenha(String senhaCliente) {
        set(ClienteConst.SENHA, senhaCliente);
    }

    /**
     * @param skype the skype to set
     */
    public void setSkype(String skypeCliente) {
        set(ClienteConst.SKYPE, skypeCliente);
    }

    /**
     * @param skype the skype to set
     */
    public void setObs(String obs) {
        set(ClienteConst.OBS, obs);
    }

    @Override
    public String toString()
    {
        //return "oi";
        Vector<String> nomesCampos = new Vector<String>();
        nomesCampos.add(ClienteConst.ID);
        nomesCampos.add(ClienteConst.NOME);
        nomesCampos.add(ClienteConst.ENDERECO);
        nomesCampos.add(ClienteConst.NUMERO);
        nomesCampos.add(ClienteConst.COMPLEMENTO);
        nomesCampos.add(ClienteConst.BAIRRO);
        nomesCampos.add(ClienteConst.CIDADE);
        nomesCampos.add(ClienteConst.ESTADO);
        nomesCampos.add(ClienteConst.COUNTRY);
        nomesCampos.add(ClienteConst.LOGIN);
        nomesCampos.add(ClienteConst.SENHA);
        nomesCampos.add(ClienteConst.TELEFONE);
        nomesCampos.add(ClienteConst.SKYPE);
        nomesCampos.add(ClienteConst.OBS);

        Vector<String> valores = new Vector<String>();

        for(int i = 0; i < nomesCampos.size(); i++)
        {
            valores.add("");
        }
        String resultado = "";
        String campo = "";

        for(String chave:getCampos().keySet())
        {
            if (getCampos().get(chave) == null)
                campo = "";
            else
                campo = getCampos().get(chave).toString();
            valores.setElementAt(campo, nomesCampos.indexOf(chave));
        }

        for(int i = 0; i < nomesCampos.size(); i++)
        {
            resultado += valores.elementAt(i) + ",";
        }
        resultado = resultado.substring(0, resultado.length()-1);
        return resultado;
    }
}
